﻿using System;

namespace YJKGridTopologyCal.Utilities
{
	public sealed class PriorityQueueNode<TPriority, TData>
	{
		public PriorityQueueNode(TData data)
		{
			this.data = data;
		}

		internal PriorityQueueNode(PriorityQueueNode<TPriority, TData> copyFrom)
		{
			this.data = copyFrom.data;
			this.Priority = copyFrom.Priority;
			this.QueueIndex = copyFrom.QueueIndex;
		}

		public TData Data
		{
			get
			{
				return this.data;
			}
		}

		public TPriority Priority { get; internal set; }

		internal int QueueIndex { get; set; }

		private readonly TData data;
	}
}
